GE 423 Mechatronics

Group 4

Joseph Gaudio, Marc Deetjen, Ting Liao, Mike Brooks

 

Figure 1 Team picture (from left to right): Mike Brooks, Ting Liao, Joseph Gaudio, Marc Deetjen

 

Robot Control

The obstacle avoidance method used is a modified bug-0 algorithm.  The robot scans the 180 degrees in front of it using LADAR measurements obtained every 100 milliseconds.  If an obstacle is found within the allowable range of LADAR distances, the robot wall follows on the side of the present obstacle.  The robot follows this obstacle until the robot is facing the destination once again.  After the robot faces the destination, the robot breaks off from wall following and heads toward the destination.  If the robot is in between two obstacles, the robot wall follows the obstacle which is on the same side of the robot as the destination.  If the robot is in between the outer boundary of the course and an obstacle, the robot follows the obstacle solely.  If the robot is close to the outer boundary with no obstacles near it for a set amount of time, the robot turns in place and faces the destination point.

The robot picks up golf balls using a designed gripper.  The two sides of the gripper are each actuated with an RC servo.  The gripper arms extend outward.  Within the cage region of the golf ball holding area is a flap.  The flap is easily pushed by a golf ball in the direction of into the cage.  The reverse direction (golf ball leaving the cage) is much more resistive.  This was designed such that when the gripper doors are open to pick up a golf ball, the golf balls in the cage do not fall out as the forward relative speeds of the golf balls with respect to the robot are not great enough to escape the hatch.  When the golf balls are ready to be dropped into the chute, the robot stops in place and opens the gripper door corresponding to the designated chute.  When the gripper is fully open, the robot then goes full speed backwards.  Given that the speed is large, the golf balls are released from the cage, overcoming the resistance of the flap.

The robot locates the golf balls with a color camera.  The robot only looks for the golf balls when it is inside the boundaries of the course.  A golf ball is registered as valid when a set number of connected pixels is reached.  The top pixels of the image are not processed as they correspond to the ceiling and thus a golf ball would not be located there.  When a golf ball is found, the robot opens the hatch corresponding to the golf ball color and moves slowly toward the ball while positioning itself such that the golf ball is centered with respect to the correct hatch.  This is done with a proportional controller.  When the ball is close enough to the robot to the point where it is about to not be seen by the camera anymore, the robot stops its positioning, and drives straight for a set amount, thus putting the golf ball into the cage.  After the ball is put into the cage, the robot stops moving and the gripper is closed.

Figure 2 Robot

 

Figure 3 Gripper

Figure 4 Grippers on the robot

Visualization by Matlab

The Matlab code to visualize the robot¡¯s course has a number of novel additions to the basic requirements. Firstly, instead of using a mere square or circle to represent the robot¡¯s location, a realistic drawing of the robot traverses and rotates around the course based on the position and angle of the actual robot. A trail is left behind to track where the robot has been on the course. Additionally, the region that the robot has ¡°seen¡± with the camera is grayed out so that we can visually see which areas the robot has and has not had the opportunity to spot golf balls. The golf balls that the robot detects are then plotted on the course. Obstacles are also plotted on the figure. This is accomplished through complex code utilizing the LADAR capabilities of the robot. This code filters the LADAR data for noise and requires a minimum number of samples to verify that an obstacle is present. For the specific application, it was known that 5 obstacles would be present, so only the 5 obstacles that were best verified were displayed. This prevents errant data from making an obstacle appear in the limit of infinite time and data points being collected. The final result is a visually appealing and intuitive representation of the course and the progress of the robot.

Figure 5 Matlab display

 

CCS Project and MATLAB Code

Robot Performance Video

Thanks for a Great Semester!